package com.miku.blog.service;

import com.miku.blog.domain.Photo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.miku.blog.domain.dto.PhotoAddDTO;
import com.miku.blog.domain.param.ReceptionParam;
import com.miku.blog.domain.pojo.ResponseResult;

/**
* @author Miku
* @description 针对表【tb_photo(照片)】的数据库操作Service
* @createDate 2022-06-09 01:30:28
*/
public interface PhotoService extends IService<Photo> {

    /**
     * 获取对应相册ID 下的图片
     * @param albumsId
     * @param current
     * @param size
     * @return
     */
    ResponseResult getPhotos(Integer current, Integer size,Integer albumsId);


    /**
     * 获取对应相册ID 的图片列表
     * @param current
     * @param size
     * @param albumId
     * @param isDelete
     * @return
     */
    ResponseResult getPhotoList(Integer current, Integer size, Integer albumId, Integer isDelete);


    /**
     * 添加图片
     * @param photoAddDTO
     * @return
     */
    ResponseResult addPhotos(PhotoAddDTO photoAddDTO);


    /**
     * 逻辑删除图片
     * @param receptionParam
     * @return
     */
    ResponseResult delPhotoByLogic(ReceptionParam receptionParam);

    /**
     * 删除图片
     * @param idList
     * @return
     */
    ResponseResult delPhotos(Integer[] idList);


    /**
     * 更新图片信息
     * @param photo
     * @return
     */
    ResponseResult updatePhoto(Photo photo);

    /**
     * 更新图片 所属相册
     * @param albumId
     * @param photoId
     * @return
     */
    boolean updatePhotoById(Integer albumId, Integer photoId);


    /**
     * 获取相册ID 下的图片数量
     * @param albumId
     * @return
     */
    long getPhotoCountByAlbumId(Integer albumId);


    /**
     * 根据相册ID  删除相册内图片[真正删除]
     * @param albumId
     * @return
     */
    boolean delPhotoByAlbumId(Integer albumId);
}
